<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Twisted from Scratch, or The Evolution of Finger</title>
  </head>
<body>

<h1>Twisted from Scratch, or The Evolution of Finger</h1>

<h2>Introduction</h2>

<p>
Twisted is a big system. People are often daunted when they approach it. It's
hard to know where to start looking.
</p>

<p>
This guide builds a full-fledged Twisted application from the ground up, using
most of the important bits of the framework. There is a lot of code, but don't
be afraid.
</p>

<p>
The application we are looking at is a <q>finger</q> service, along the 
lines of the familiar service traditionally provided by UNIX&trade; servers. 
We will extend this service slightly beyond the standard, in order to 
demonstrate some of Twisted's higher-level features.
</p>

<p>
Each section of the tutorial dives straight into applications for various
Twisted topics. These topics have their own introductory howtos listed in
the <a href="../index.xhtml">core howto index</a> and in the documentation for
other Twisted projects like Twisted Web and Twisted Words. There are at least
three ways to use this tutorial: you may find it useful to read through the rest
of the topics listed in the <a href="../index.xhtml">core howto index</a> before
working through the finger tutorial, work through the finger tutorial and then
go back and hit the introductory material that is relevant to the Twisted
project you're working on, or read the introductory material one piece at a time
as it comes up in the finger tutorial.
</p>

<h2>Contents</h2>

<p>
This tutorial is split into eleven parts:
</p>

<ol>
<li><a href="intro.xhtml">The Evolution of Finger: building a simple
finger service</a></li>
<li><a href="protocol.xhtml">The Evolution of Finger: adding features
to the finger service</a></li>
<li><a href="style.xhtml">The Evolution of Finger: cleaning up the
finger code</a></li>
<li><a href="components.xhtml">The Evolution of Finger: moving to a
component based architecture</a></li>
<li><a href="backends.xhtml">The Evolution of Finger: pluggable
backends</a></li>
<li><a href="web.xhtml">The Evolution of Finger: a web
frontend</a></li>
<li><a href="pb.xhtml">The Evolution of Finger: Twisted client
support using Perspective Broker</a></li>
<li><a href="factory.xhtml">The Evolution of Finger: using a single
factory for multiple protocols</a></li>
<li><a href="client.xhtml">The Evolution of Finger: a Twisted finger
client</a></li>
<li><a href="library.xhtml">The Evolution of Finger: making a finger library</a></li>
<li><a href="configuration.xhtml">The Evolution of Finger:
configuration and packaging of the finger service</a></li>
</ol>


</body>
</html>
